home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / tex / style / misc / tugbot.com < prev    next >
Text File  |  1995-11-25  |  16KB  |  470 lines

  1. %               *****     TUGBOT.COM    *****                   17 Jun 89
  2. %
  3. %       This file contains macros which are common to both the PLAIN
  4. %       and LaTeX style files for TUGboat.
  5.  
  6. %       Among other things, it contains supplementary definitions for
  7. %       abbreviations and logos that appear in TUGboat.
  8.  
  9. %       helpful shorthand
  10.  
  11. \def\makeescape#1{\catcode`#1=0 }
  12. \def\makebgroup#1{\catcode`#1=1 }
  13. \def\makeegroup#1{\catcode`#1=2 }
  14. \def\makemath#1{\catcode`#1=3 }
  15. \def\makealign#1{\catcode`#1=4 }
  16. \def\makeeol#1{\catcode`#1=5 }
  17. \def\makeparm#1{\catcode`#1=6 }
  18. \def\makesup#1{\catcode`#1=7 }
  19. \def\makesub#1{\catcode`#1=8 }
  20. \def\makeignore#1{\catcode`#1=9 }
  21. \def\makespace#1{\catcode`#1=10 }
  22. \def\makeletter#1{\catcode`#1=11 }
  23. \def\makeother#1{\catcode`#1=12 }
  24. \def\makeactive#1{\catcode`#1=13 }
  25. \def\makecomment#1{\catcode`#1=14 }
  26.  
  27. \def\makeatletter{\catcode`\@=11 }
  28. \chardef\other=12
  29. \def\makeatother{\catcode`\@=\other}
  30.  
  31. \def\savecat#1{%
  32.   \expandafter\xdef\csname\string#1savedcat\endcsname{\the\catcode`#1}}
  33. \def\restorecat#1{\catcode`#1=\csname\string#1savedcat\endcsname}
  34.  
  35.  
  36. \savecat\@
  37. \makeletter\@           % used, as in PLAIN, in protected control sequences
  38.  
  39.                         % for restoring meanings of global control sequences
  40. \def\SaveCS#1{%
  41.   \def\scratch{\expandafter\let\csname saved@@#1\endcsname}%
  42.   \expandafter\scratch\csname#1\endcsname}
  43. \def\RestoreCS#1{%
  44.   \def\scratch{\expandafter\let\csname#1\endcsname}%
  45.   \expandafter\scratch\csname saved@@#1\endcsname}
  46.  
  47.  
  48. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  49. %                                                                             %
  50. %                *****     abbreviations and logos      *****                 %
  51. %                                                                             %
  52. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  53.  
  54.  
  55. \def \AMS{American Mathematical Society}
  56.  
  57. \def\AmSTeX{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox
  58.         {\the\textfont2 M}\kern-.125em{\the\textfont2 S}-\TeX}
  59.  
  60. \def\aw{A\kern.1em-W}
  61. \def\AW{Addison\kern.1em-\penalty0\hskip0pt Wesley}
  62.  
  63. \def \BibTeX{{\rm B\kern-.05em{\smc i\kern-.025emb}\kern-.08em\TeX}}
  64.  
  65. \def \CandT{{\sl Computers \& Typesetting}}
  66.  
  67. \def\DVItoVDU{DVIto\kern-.12em VDU}
  68.  
  69. %       Japanese TeX
  70. \def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}}
  71.  
  72. \def \JoT{{\sl The Joy of \TeX}}
  73.  
  74. %       note -- \LaTeX definition is from LATEX.TEX 2.09 of 7 Jan 86,
  75. %               adapted for additional flexibility in TUGboat
  76. %\def \LaTeX{\TestCount=\the\fam \leavevmode L\raise.42ex
  77. %       \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}\kern-.15em\TeX}
  78. %       note -- broken in two parts, to permit separate use of La,
  79. %               as in (La)TeX
  80. \def \La{\TestCount=\the\fam \leavevmode L\raise.42ex
  81.         \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}}
  82. \def \LaTeX{\La\kern-.15em\TeX}
  83.  
  84.  
  85. %       Note -- The `official' \MF uses \font\manual=manfnt, which,
  86. %               although it is now in general distribution, may not be
  87. %               available to all users.
  88. \font\manual=manfnt % font used for the METAFONT logo, etc.
  89. %\font\manual=nwmanfnt % to avoid problems while old manfnt is preloaded
  90.  
  91. %       for Robert McGaffey
  92. \def\Mc{\setbox\TestBox=\hbox{M}M\vbox to\ht\TestBox{\hbox{c}\vfil}}
  93.  
  94. \def \MF{{\manual META}\-{\manual FONT}}
  95. \def \mf{{\smc Metafont}}
  96. \def \MFB{{\sl The \slMF book}}
  97.  
  98. %       multilingual (INRS) TeX
  99. \def \mtex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX}
  100.  
  101. \def \pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}MF}
  102. \def \PCTeX{PC\thinspace\TeX}
  103. \def \pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}\TeX}
  104.  
  105. \def \Pas{Pascal}
  106.  
  107. \def \PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
  108. \def \PiCTeX{\PiC\kern-.11em\TeX}
  109.  
  110. \def\plain{{\tt plain}}
  111.  
  112. \def \POBox{P.\thinspace O.~Box }
  113. \def \POBoxTUG{\POBox\unskip~9506, Providence, RI~02940}
  114.  
  115. \def \PS{{Post\-Script}}
  116.  
  117. \def \SC{Steering Committee}
  118.  
  119. \def \SliTeX{{\rm S\kern-.06em{\smc l\kern-.035emi}\kern-.06em\TeX}}
  120.  
  121. \def \slMF{{\manual 89:;}\-{\manual <=>:}} % slant the logo
  122.  
  123. %       Atari ST (Klaus Guntermann)
  124. \def\stTeX{{\smc st\rm\kern-0.13em\TeX}}
  125.  
  126. \def\TANGLE{{\tt TANGLE}}
  127.  
  128. \def \TB{{\sl The \TeX book}}
  129.  
  130. \def \TeX{\leavevmode\hbox{T\kern-.1667em\lower.424ex\hbox{E}\kern-.125emX}}
  131.  
  132. \def\TeXhax{{\tt \TeX hax}}
  133.  
  134. %       Don Hosek
  135. \def\TeXMaG{\TeX M\kern-.1667em\lower.5ex\hbox{A}\kern-.2267emG}
  136.  
  137. %\def\TeXtures{\TestCount=\the\fam
  138. %       \TeX\-\hbox{$\fam\TestCount\scriptstyle TURES$}}
  139. \def\TeXtures{{\it Textures}}
  140.  
  141. \def \TeXXeT{\TeX--X\kern-.125em\lower.5ex\hbox{E}\kern-.1667emT}
  142.  
  143. \def\tubfont{\sl}               % redefined in other situations
  144. \def \TUB{{\tubfont TUGboat\/}}
  145.  
  146. \def \TUG{\TeX\ \UG}
  147.  
  148. \def \UG{Users Group}
  149.  
  150. \def \UNIX{{\smc unix}}
  151.  
  152. \def \VAX{\leavevmode\hbox{V\kern-.12em A\kern-.1em X}}
  153.  
  154. \def \VorTeX{V\kern-2.7pt\lower.5ex\hbox{O\kern-1.4pt R}\kern-2.6pt\TeX}
  155.  
  156. \def \XeT{\leavevmode\hbox{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT}}
  157.  
  158. \def \WEB{{\tt WEB}}
  159. \def \WEAVE{{\tt WEAVE}}
  160.  
  161.  
  162.  
  163. %********************************************************************
  164.  
  165. \clubpenalty=10000
  166. \widowpenalty=10000
  167. \newdimen\TUBparindent  \TUBparindent=20pt
  168.  
  169. \def \BlackBoxes{\overfullrule=5pt }
  170. \def \NoBlackBoxes{\overfullrule=0pt }
  171. \def \newline{\hskip0pt plus \pagewd \break}
  172.  
  173. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  174. %                                                                             %
  175. %               *****     utility registers and definitions     *****         %
  176. %                                                                             %
  177. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  178.  
  179. %       test registers for transient use; paired - internal/external
  180. \newbox\T@stBox                 \newbox\TestBox
  181. \newcount\T@stCount             \newcount\TestCount
  182. \newdimen\T@stDimen             \newdimen\TestDimen
  183. \newif\ifT@stIf                 \newif\ifTestIf
  184.  
  185.  
  186. %       \cs existence test, stolen from TeXbook exercise 7.7
  187. \def \ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax }
  188.  
  189. %       Smashes repeated from AMS-TeX; PLAIN implements only full \smash .
  190. \newif\iftop@           \newif\ifbot@
  191. \def\topsmash{\top@true\bot@false\smash@}
  192. \def\botsmash{\top@false\bot@true\smash@}
  193. \def\smash{\top@true\bot@true\smash@}
  194. \def\smash@{\relax\ifmmode\def\next{\mathpalette\mathsm@sh}%
  195.         \else\let\next\makesm@sh\fi \next }
  196. \def\finsm@sh{\iftop@\ht\z@\z@\fi\ifbot@\dp\z@\z@\fi\box\z@}
  197.  
  198.  
  199. %       Vertical `laps'; cf. \llap and \rlap
  200. \long\def\ulap#1{\vbox to \z@{\vss#1}}
  201. \long\def\dlap#1{\vbox to \z@{#1\vss}}
  202.  
  203. %       And centered horizontal and vertical `laps'
  204. \def\xlap#1{\hbox to \z@{\hss#1\hss}}
  205. \long\def\ylap#1{\vbox to \z@{\vss#1\vss}}
  206. \long\def\zlap#1{\ylap{\xlap{#1}}}
  207.  
  208.  
  209. %       Avoid unwanted vertical glue when making up pages.
  210. \def \basezero{\baselineskip\z@ \lineskip\z@}
  211.  
  212.  
  213. %       Support ad-hoc strut construction.
  214. \def \makestrut[#1;#2]{\vrule height#1 depth#2 width\z@ }
  215.  
  216.  
  217. %       Today's date, to be printed on drafts.  Based on TeXbook, p.406.
  218.  
  219. \def\today{\number\day\space \ifcase\month\or
  220.         Jan \or Feb \or Mar \or Apr \or May \or Jun \or
  221.         Jul \or Aug \or Sep \or Oct \or Nov \or Dec \fi
  222.         \number\year}
  223.  
  224. %       Current time; this may be system dependent!
  225. \newcount\hours
  226. \newcount\minutes
  227. \def \SetTime{\hours=\time
  228.         \global\divide\hours by 60
  229.         \minutes=\hours
  230.         \multiply\minutes by 60
  231.         \advance\minutes by-\time
  232.         \global\multiply\minutes by-1 }
  233. \SetTime
  234. \def \now{\number\hours:\ifnum\minutes<10 0\fi\number\minutes}
  235.  
  236. \def \Now{\today\ \now}
  237.  
  238. \newif\ifPrelimDraft            \PrelimDraftfalse
  239.  
  240. \def \midrtitle{\ifPrelimDraft {{\tensl preliminary draft, \Now}}\fi}
  241.  
  242. %       Registration marks
  243.  
  244. \def \HorzR@gisterRule{\vrule height 0.2pt depth 0pt width 0.5in }
  245. \def \DownShortR@gisterRule{\vrule height 0.2pt depth 1pc width 0.2pt }
  246. \def \UpShortR@gisterRule{\vrule height 1pc depth 0pt width 0.2pt }
  247.  
  248.  
  249. %               ``T'' marks centered on top and bottom edges of paper
  250.  
  251. \def \ttopregister{\dlap{%
  252.         \hbox to \trimwd{\HorzR@gisterRule \hfil \HorzR@gisterRule
  253.                         \HorzR@gisterRule \hfil \HorzR@gisterRule}%
  254.         \hbox to \trimwd{\hfil \DownShortR@gisterRule \hfil}}}
  255. \def \tbotregister{\ulap{%
  256.         \hbox to \trimwd{\hfil \UpShortR@gisterRule \hfil}%
  257.         \hbox to \trimwd{\HorzR@gisterRule \hfil \HorzR@gisterRule
  258.                         \HorzR@gisterRule \hfil \HorzR@gisterRule}}}
  259.  
  260. \def \topregister{\ttopregister}
  261. \def \botregister{\tbotregister}
  262.  
  263.  
  264.  
  265. %       PLAIN's definition of \raggedright doesn't permit any stretch, and
  266. %       results in too many overfull boxes.  Change.
  267. \newdimen\raggedskip            \raggedskip=\z@
  268. \newdimen\raggedstretch         \raggedstretch=5em
  269. \newskip\raggedparfill          \raggedparfill=\z@ plus 1fil
  270.  
  271. \def \raggedspaces{\spaceskip=.3333em \xspaceskip=.5em }
  272. %       Some applications may have to add stretch, in order to avoid
  273. %       all overfull boxes.
  274.  
  275. \def \raggedright{\rightskip=\raggedskip plus\raggedstretch \raggedspaces
  276.                 \parfillskip=\raggedparfill }
  277. \def \raggedleft{\leftskip=\raggedskip plus\raggedstretch \raggedspaces
  278.                 \parfillskip=\z@ }
  279. \def \raggedcenter{\leftskip=\raggedskip plus\raggedstretch
  280.                 \rightskip=\leftskip \raggedspaces
  281.                 \parindent=\z@ \parfillskip=\z@ }
  282.  
  283. \def \normalspaces{\spaceskip=.3333em plus.1667em minus.1111em
  284.                 \xspaceskip=.4444em plus.5em minus.037em }
  285.  
  286.  
  287. %       Miscellaneous useful stuff
  288.  
  289.  
  290. \def \bull{\vrule height 1ex width .8ex depth -.2ex } % square bullet
  291. \def \cents{{\rm\raise.2ex\rlap{\kern.05em$\scriptstyle/$}c}}
  292.  
  293. \def \careof{\leavevmode\hbox{\raise.75ex\hbox{c}\kern-.15em
  294.                 /\kern-.125em\smash{\lower.3ex\hbox{o}}} \ignorespaces}
  295. \def \sfrac#1/#2{\leavevmode\kern.1em
  296.         \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
  297.         /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
  298.  
  299. \def \d@sh#1{\nobreak\thinspace#1\penalty0\thinspace}
  300. \def \dash{\d@sh{--}}
  301. \def \Dash{\d@sh{---}}
  302.  
  303. %       Hack to permit automatic hyphenation after an actual hyphen.
  304.  
  305. \def \hyph{-\penalty0\hskip0pt\relax }
  306.  
  307. \def \slash{/\penalty0\hskip0pt}        % "breakable" slash
  308. %       Dates and other items which identify the volume and issue
  309.  
  310. %       To use: \vol 5, 2.
  311. %               \issdate October 1984.
  312. %               \issueseqno=10
  313. %       For production, these are set in a separate file, TUGBOT.DATES,
  314. %       which is issue-specific.
  315.  
  316. \newcount\issueseqno            \issueseqno=-1
  317.  
  318. \def \v@lx{\gdef\volx{Volume~\volno~(\volyr), No.~\issno}}
  319. \def \volyr{}
  320. \def \volno{}
  321. \def \vol #1,#2.{\gdef\volno{#1\unskip}%
  322.         \gdef\issno{\ignorespaces#2\unskip}%
  323.         \setbox\TestBox=\hbox{\volyr}%
  324.         \ifdim \wd\TestBox > .2em \v@lx \fi }
  325.  
  326. \def \issdate #1#2 #3.{\gdef\issdt{#1#2 #3}\gdef\volyr{#3}%
  327.         \gdef\bigissdt{#1{\smc\uppercase{#2}} #3}%
  328.         \setbox\TestBox=\hbox{\volno}%
  329.         \ifdim \wd\TestBox > .2em \v@lx \fi }
  330.  
  331.  
  332. \vol 0, 0.                      % volume, issue.
  333. \issueseqno=0                   % sequential issue number
  334. \issdate Thermidor, 2001.       % month, year of publication
  335.  
  336.  
  337. \font\tenupit=cmu10             % unslanted italic
  338.  
  339. \def \xEdNote{{\tenupit Editor's note:\enspace }}
  340.  
  341.  
  342. %       dates associated with errata and bug lists
  343. %          [TEX,DEK]
  344. %       ERRATA TEX    8.5 20-Feb-89 0938
  345. \def \errdate{20 February 1989}
  346. %       TEX82  BUG   35.2 23-Jan-89 2229
  347. \def \TeXbugdate{23 January 89}
  348. \def \TeXverno{2.97}
  349. %          [MF,DEK]
  350. %       MF84   BUG   14.0 14-Dec-88 2233
  351. \def \MFbugdate{14 December 1988}
  352. \def \MFverno{1.7}
  353. %          [CM,DEK]
  354. %       CM85   BUG    8.4 23-Jan-89 2157
  355. \def \CMbugdate{23 January 1989}
  356.  
  357. \def \memlistdate{July~1989}            % membership list running head date
  358. \def \MemListDate{15~June~1989}         % membership list closing date
  359. \def \FullMemListDate{3~March~1989}
  360. \def \PrevMemListDate{3~March~1989}
  361. \def \IsThisSupplement{\Supplementtrue}
  362.  
  363. \def \mtgdate{August 1989}              % date of meeting when list distributed
  364.  
  365. \def \memformyear{1989}                 % year for membership form
  366.  
  367. \def \revdate{10/88}                    % revision date for bottom of forms
  368.  
  369. \def \distriblines{{\centerline{Distributed with \TUB\ \volx.\ \ Published by}%
  370.                 \nobreak
  371.                 \vskip 4pt
  372.                 \baselineskip=13pt
  373.                 \interlinepenalty=10000
  374.                 \halign{\hbox to \hsize{\hfil##\hfil}\cr
  375.                         \bf\TUG\cr
  376.                         \POBox 9506\cr
  377.                         Providence, R.I.\ 02940-9506, \USA\cr}}}
  378.  
  379.  
  380.  
  381. %       TUGboat conventions include the issue number in the file name.
  382. %       Permit this to be incorporated into file names automatically.
  383. %       If issue number = 11, \Input filnam  will read tb11filnam.tex.
  384.  
  385.  
  386. \def \Input #1 {\ifnum\issueseqno<0 \def\infil@{#1}%
  387.                 \else \def\infil@{tb\number\issueseqno#1}\fi
  388.                 \input \infil@
  389.                 \ifRMKopen\immediate\closeout\TBremarkfile\RMKopenfalse\fi}
  390.  
  391. \newif\ifRMKopen        \RMKopenfalse
  392. \newwrite\TBremarkfile
  393. \def\TBremarkON#1{%
  394.   \ifRMKopen\else\RMKopentrue\immediate\openout\TBremarkfile=\infil@.rmk \fi
  395.   \toks@={#1}%
  396.   \immediate\write\TBremarkfile{^^J\the\toks@}%
  397.   \immediate\write16{^^JTBremark:: \the\toks@^^J}}
  398. \def\TBremarkOFF#1{}
  399. \let\TBremark=\TBremarkOFF
  400.  
  401.  
  402. %       Write out (both to a file and to the log) the starting page number
  403. %       of an article, to be used for cross references and in contents.
  404. %       \pagexref  is used for articles fully processed in the TUGboat run.
  405. %       \PageXref  is used for "extra" pages, where an item is submitted
  406. %               as camera copy, and only running heads (at most) are run.
  407. \def \pagexrefON#1{\ifFirstPar \nobreak \fi  % don't clobber switch by accident
  408.         \write-1{\def\expandafter\noexpand\csname#1\endcsname{\number\pageno}}%
  409.         \write\ppoutfile{%
  410.                 \def\expandafter\noexpand\csname#1\endcsname{\number\pageno}}%
  411.         \ifFirstPar \nobreak \fi }      % and don't allow page break
  412. \def \PageXrefON#1{%
  413.         \immediate\write-1{\def\expandafter
  414.                         \noexpand\csname#1\endcsname{\number\pageno}}%
  415.         \immediate\write\ppoutfile{\def\expandafter
  416.                         \noexpand\csname#1\endcsname{\number\pageno}}}
  417.  
  418. \def\pagexrefOFF#1{}
  419. \let\pagexref=\pagexrefOFF
  420. \def\PageXrefOFF#1{}
  421. \let\PageXref=\PageXrefOFF
  422.  
  423. \def\xreftoON#1{%
  424.   \ifundefined{#1}%
  425.     ???\TBremark{Need cross reference for #1.}%
  426.   \else\csname#1\endcsname\fi}
  427. \def\xreftoOFF#1{???}
  428. \let\xrefto=\xreftoOFF
  429.  
  430.  
  431. %       For uppercasing title and author; from AMSPPT.STY, version 0
  432.  
  433. \def\uctext@#1{\uppercase@#1\gdef\uppercase@@{}$\m@th$}
  434. \def\uppercase@#1$#2${\gdef\uppercase@@{\uppercase@}\uppercase
  435.     {#1}${#2}$\uppercase@@}
  436.  
  437.  
  438. {\makeactive\@
  439.  \gdef\signatureat{\makeactive\@\def@{\char"40\discretionary{}{}{}}}
  440.  \makeactive\%
  441.  \gdef\signaturepercent{\makeactive\%\def%{\char"25\discretionary{}{}{}}}
  442. }
  443.  
  444. \def\signature{\bgroup\makeactive\@\makeactive\%\@readsignature}
  445. \def\signaturemark{\leavevmode\llap{$\diamond$\enspace}}
  446. \def\makesignature{%
  447.   \par
  448.   \rightline{%
  449.     \vbox{\hsize=12pc \ninepoint \raggedright
  450.       \parindent \z@ \everypar={\global\hangindent 1pc }
  451.       \parskip \z@
  452.       \def\\{\endgraf} \def\net{\tt\signatureat\signaturepercent}
  453.       \def\phone{\rm Phone: } \rm
  454.       \the\@signature}}
  455.   }
  456.  
  457.  
  458.  
  459. \def \Dag{\raise .6ex\hbox{$\scriptstyle\dagger$}}
  460.  
  461.  
  462. %       some hyphenation exceptions:
  463. \hyphenation{man-u-script man-u-scripts}
  464.  
  465.  
  466. \restorecat\@
  467.  
  468. \endinput
  469.  
  470.